This invention relates, in general, to the updating or migration of components in a computing environment, and in particular, to updating a component and subsequently operating the updated component in a compatibility mode to maintain availability of the computing environment.
In a distributed computing environment, individual computing units or nodes are interconnected via a network to form a cluster. By connecting the nodes in this manner, the individual nodes may communicate with one another to accomplish a single task or process a unit of work distributed among the individual computing units. One way to accomplish such a task is to run multiple images of a single program or component on several of the individual nodes. By concurrently running the images on individual nodes, different portions of the unit of work may be jointly processed at the same time. Distributing the unit of work between multiple components in this manner allows the task or unit of work to be more effectively processed.
From time to time, the program being processed by the individual components is required to be updated from a current version to a newer version in order to enhance the functionality or to address problems associated with the current version of the program. One technique for performing these updates or migrations is to first shut down all of the nodes of the system. After all of the nodes have been deactivated, the current version of the component is updated on each of the nodes. Then, after all of the components have been migrated, the nodes are reactivated running the newer version of the program. However, since the entire system must be deactivated while the individual components are updated, this method is unacceptably disruptive with continuous availability or mission critical systems running twenty-four hours a day.
In the alternative, another technique allows components within the computing environment to be migrated or updated individually. In this technique, the selected component is deactivated, updated and later reactivated within the cluster without having to deactivate the entire cluster. However, with this technique, a user must consciously be aware of utilizing only the functionality supported by older version components. Thus, because a user must actively be aware of limitations of nodes running the older versions of the component, this method proves to be unduly burdensome to the users of the system.
Thus, a need exists for a capability that allows upgrading or migrating of individual components in a computing environment which does not require the entire cluster to be deactivated. Furthermore, a need exists for a capability which does not require a user to be consciously aware of the limitations of the older version components.
The shortcomings of the prior art are overcome and additional advantages are provided through the provision of a computing environment component updating capability. In one embodiment, a method of updating components in the computing environment includes updating a component of a computing environment which is associated with at least a portion of a unit of work from one version to another version; and emulating, by the updated component, the one version while at least one other component of said computing environment associated with said unit of work, remains at said one version.
In another aspect, a system for updating components in a computing environment is provided. The system includes means for updating a component of the computing environment which is associated with at least a portion of a unit of work from one version to another version; and means for emulating, by the updated component, said one version while at least one other component of a computing environment associated with the unit of work, remains at said one version.
In yet another aspect of the present invention, another system for updating components in a computing environment is provided. The system includes an updating device for updating a component of the computing environment which is associated with at least a portion of a unit of work from one version to another version; and an emulator for emulating, by the updated component, said one version while at least one other component of said computing environment associated with said unit of work, remains at said one version.
In yet another aspect of the present invention, an article of manufacture including at least one computer usable medium having computer readable program code means embodied therein for causing the updating of components in a computing environment is disclosed. The computer readable program code means in the article of manufacture includes, for instance, computer readable program code means for updating a component of the computing environment which is associated with at least a portion of a unit of work from one version to another version; and computer readable program code means for emulating, by the updated component, said one version while at least one other component of the computing environment associated with the unit of work, remains at said one version.
Thus, in accordance with one aspect of the invention, presented herein is an updating capability in which a component of a computing environment is updated while maintaining the availability of the computing environment. In particular, a component of the computing environment which is associated with a portion of a unit of work is updated from one version to another version. Subsequently, the updated component emulates the original version, or operates in a compatibility mode, while other components of the computing environment, which are similarly associated with the same unit of work, remain at the original version.
In a further aspect of the present invention, presented herein is a backing-out capability in which a component of a computing environment is backed-out to an older version while maintaining the availability of the computing environment. More specifically, a component may be backed-out from a newer version to either the cluster version or to an intermediate version. In the latter case, the backed-out component operates in a compatibility mode with the cluster version.
Additional features and advantages are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention.